package com.dieusoft.box.trade.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * @Description: 集装箱贸易表
 * @Author: jeecg-boot
 * @Date: 2020-10-22
 * @Version: V1.0
 */
@ApiModel(value = "jzx_trade对象", description = "集装箱贸易表")
@Data
@TableName("jzx_trade")
public class JzxTrade implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**
     * 创建日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**
     * 更新人
     */
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**
     * 更新日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    @TableField(update = "now()")
    private Date updateTime;
    /**
     * 所属部门
     */
    @ApiModelProperty(value = "所属部门")
    private String sysOrgCode;
    /**
     * 公司名称
     */
    @Excel(name = "公司名称", width = 15)
    @ApiModelProperty(value = "公司名称")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String companyName;
    /**
     * 箱东代码
     */
    @Excel(name = "箱东代码", width = 15)
    @ApiModelProperty(value = "箱东代码")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String containerCode;
    /**
     * 箱东名称
     */
    @Excel(name = "箱东名称", width = 15)
    @ApiModelProperty(value = "箱东名称")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String containerNumber;
    /**
     * 箱型
     */
    @Excel(name = "箱型", width = 15)
    @ApiModelProperty(value = "箱型")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String containerType;

    @Excel(name = "新箱/旧箱", width = 15, dicCode = "box_condition")
    @Dict(dicCode = "box_condition")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String conditionType;
    /**
     * 起运港
     */
    @Excel(name = "起运港", width = 15)
    @ApiModelProperty(value = "起运港")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String pol;
    /**
     * 目的港
     */
    @Excel(name = "目的港", width = 15)
    @ApiModelProperty(value = "目的港")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String pod;
    /**
     * POL进堆场时间
     */
    @Excel(name = "起运港进堆场时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "起运港进堆场时间")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date polInTime;

    @Excel(name = "船公司", width = 30)
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String shipCompany;
    /**
     * ETA
     */
    @Excel(name = "ETA", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "ETA")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date eta;
    /**
     * ETD
     */
    @Excel(name = "ETD", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "ETD")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date etd;

    @Excel(name = "目的港提货时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date podDeliveryTime;

    /**
     * POD还空箱时间
     */
    @Excel(name = "目的港还空箱时间", width = 20, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "目的港还空箱时间")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date podReturnboxTime;
    /**
     * POD离场时间
     */
    @Excel(name = "目的港离场时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "目的港离场时间")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date podLeaveTime;
    /**
     * POD堆场信息
     */
    @Excel(name = "目的港堆场信息", width = 15)
    @ApiModelProperty(value = "目的港堆场信息")
    @Dict(dicCode = "id", dictTable = "yard_info", dicText = "yard_info_col")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String podYardInfo;
    /**
     * POD堆场收费费率
     */
    @Excel(name = "目的港堆场收费费率 ", width = 15)
    @ApiModelProperty(value = "堆场收费费率 ")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String podYardCostRate;
    /**
     * 买箱费
     */
    @Excel(name = "买箱费", width = 15)
    @ApiModelProperty(value = "买箱费")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private java.math.BigDecimal buyBoxCost;

    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String buyBoxCostCurrency;
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String useBoxCostCurrency;
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String saleBoxCostCurrency;
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String intentionToSellBoxFeelCurrency;
    //堆场总费用描述
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String podYardTotalCostDesc;
    //堆场总费用描述费率
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String podYardTotalCostDescCurrency;
    //利润额描述
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String profitDesc;
    //利润额描述币种
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String profitDescCurrency;
    //利润额币种
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String profitCurrency;
    /**
     * 用箱费
     */
    @Excel(name = "用箱费", width = 15)
    @ApiModelProperty(value = "用箱费")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private java.math.BigDecimal useBoxCost;
    /**
     * 卖箱费
     */
    @Excel(name = "卖箱费", width = 15)
    @ApiModelProperty(value = "卖箱费")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private java.math.BigDecimal saleBoxCost;
    /**
     * POD堆场总费用
     */
    @Excel(name = "目的港堆场总费用 ", width = 15)
    @ApiModelProperty(value = "POD堆场总费用 ")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private java.math.BigDecimal podYardTotalCost;
    /**
     * 利润额
     */
    @Excel(name = "利润额 ", width = 15)
    @ApiModelProperty(value = "利润额 ")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private java.math.BigDecimal profit;
    /**
     * 状态
     */
    @Excel(name = "状态", width = 15)
    @ApiModelProperty(value = "状态")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer status;
    /**
     * 订单开始时间
     */
    @Excel(name = "订单开始时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "订单开始时间")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date orderStartTime;
//    /**
//     * 应付单据号
//     */
//    @Excel(name = "应付单据号", width = 15)
//    @ApiModelProperty(value = "应付单据号")
//    private String payableId;
//    /**
//     * 应收单据号
//     */
//    @Excel(name = "应收单据号", width = 15)
//    @ApiModelProperty(value = "应收单据号")
//    private String receivablesId;

    /**
     * 集装箱ID
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String boxId;

    /**
     * 业务类型
     * “国际箱贸业务” “国内箱贸业务” “租箱业务”
     * 1、2、3
     */
    private String type;


    @Excel(name = "提箱日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "提箱日期")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date takeBoxTime;


    /**
     * 超期堆存费
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal overdueStorageFee;
    /**
     * 超期堆存费币种
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String overdueStorageCurrency;

    /**
     * 客户业务编号
     */
    @Excel(name = "客户业务编号", width = 15)
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String customerBusinessNumber;

    @Excel(name = "备注", width = 150)
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String remark;

    @Excel(name = "意向卖箱费", width = 15)
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal intentionToSellBoxFeel;

    @Excel(name = "目的港堆存天数", width = 15)
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private BigDecimal podStackingDays;

    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String polDesc;
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String podDesc;


    //只有第一次是以5天去提醒，后边都是以3天为一个单位去提醒，直到系统检索到还空箱时间已填，红点就会自动消失，并且不再提醒。
    private Integer tipsDay;

    /**
     * 目的港堆场总费用币种
     */
    private String podYardTotalCostCurrency;


}
